home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / modula2f.zip / SCREEN.MOD < prev    next >
Text File  |  1992-06-24  |  1KB  |  68 lines

  1. IMPLEMENTATION MODULE Screen;
  2.  
  3. FROM SYSTEM IMPORT ADDRESS, ASSEMBLER, ADR, SEG, OFS;
  4. FROM System IMPORT Move;
  5.  
  6. PROCEDURE SaveScreen(VAR s:ScreenData);
  7.     VAR sadd,vptr:ADDRESS;
  8.     BEGIN
  9.         vptr:=ADR(s);
  10.         sadd.SEG:=47104;
  11.         sadd.OFS:=0;
  12.         Move(sadd,vptr,6600);
  13.     END SaveScreen;
  14.  
  15. PROCEDURE RestoreScreen(VAR s:ScreenData);
  16.     VAR sadd,vptr:ADDRESS;
  17.     BEGIN
  18.         vptr:=ADR(s);
  19.         sadd.SEG:=47104;
  20.         sadd.OFS:=0;
  21.         Move(vptr,sadd,6600);
  22.     END RestoreScreen;
  23.  
  24. PROCEDURE GetPosition(VAR v,h:CARDINAL);
  25.     BEGIN
  26.         ASM
  27.             XOR BH,BH
  28.             MOV AH,3
  29.             LES DI,v
  30.             MOV ES:[DI],DH
  31.             LES DI,h
  32.             MOV ES:[DI],DL
  33.         END;
  34.     END GetPosition;
  35.  
  36. PROCEDURE GetChar(VAR ch:CHAR; VAR fc,bc:CARDINAL);
  37.     VAR atrib:CARDINAL;
  38.     BEGIN
  39.         atrib:=0;
  40.         ASM
  41.             MOV AH,8
  42.             XOR BH,BH
  43.             INT 10H
  44.             LES DI,ch
  45.             MOV ES:[DI],AL
  46.             MOV atrib,AH
  47.         END;
  48.         bc:=atrib DIV 16;
  49.         fc:=atrib MOD 16;
  50.     END GetChar;
  51.  
  52. PROCEDURE PrintScreen();
  53.     BEGIN
  54.         ASM
  55.             INT 5
  56.         END;
  57.      END PrintScreen;
  58.  
  59. PROCEDURE CursorOff();
  60.     BEGIN
  61.         ASM
  62.             MOV CH,32
  63.             MOV AH,1
  64.             INT 10H
  65.         END;
  66.     END CursorOff;
  67.  
  68. END Screen.